package com.sakiko.test;

import com.sakiko.aop_02.Calculator;
import com.sakiko.config.JavaConfig02;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;

//@SpringJUnitConfig(locations = "classpath:spring_aop01.xml")
@SpringJUnitConfig(JavaConfig02.class)
public class SpringTest02 {

    // 使用 Aop之后，必须使用接口接收
    // [1、2、3、4、【BeanPostProcessor -> aop -> 动态代理 -> jdkDynamicAopProxy -> 代理对象 -> 加入容器】5、6、] ioc/di
    @Autowired
    private Calculator calculator; // h = jdkDynamicAopProxy

    @Test
    public void test01() {
        int add = calculator.add(1, 1);
        System.out.println("add: " + add);
    }

    @Test
    public void test02() {
//        int div = calculator.div(1, 0);
//        System.out.println("测试报错时触发@AfterThrowing: " + div);
    }
}
